// callback:函数中包含四个参数
// - previousValue （上一次调用回调返回的值，或者是提供的初始值（initialValue））
// - currentValue （数组中当前被处理的元素）
// - index （当前元素在数组中的索引)
// - array （调用的数组）
var numbers = [15.5, 2.3, 1.1, 4.7];

const arr = [1, 2, 3, 4, 5]
const sum = arr.reduce((pre, item) => {
    return pre + item
}, 0)
console.log(sum)


Array.prototype.myMap = function(fn, thisValue) {
    var res = [];
    thisValue = thisValue || [];
    this.reduce(function(pre, cur, index, arr) {
        return res.push(fn.call(thisValue, cur, index, arr));
    }, []);
    return res;
}
var arr1 = [2, 3, 1, 5];
arr1.myMap(function(item, index, arr) {
    console.log(item, index, arr);
})